case GDK_XOR:
xvalues.function = GXxor;
break;
+ case GDK_CLEAR:
+ xvalues.function = GXclear;
+ break;
+ case GDK_AND:
+ xvalues.function = GXand;
+ break;
+ case GDK_AND_REVERSE:
+ xvalues.function = GXandReverse;
+ break;
+ case GDK_AND_INVERT:
+ xvalues.function = GXandInverted;
+ break;
+ case GDK_NOOP:
+ xvalues.function = GXnoop;
+ break;
+ case GDK_OR:
+ xvalues.function = GXor;
+ break;
+ case GDK_EQUIV:
+ xvalues.function = GXequiv;
+ break;
+ case GDK_OR_REVERSE:
+ xvalues.function = GXorReverse;
+ break;
+ case GDK_COPY_INVERT:
+ xvalues.function = GXcopyInverted;
+ break;
+ case GDK_OR_INVERT:
+ xvalues.function = GXorInverted;
+ break;
+ case GDK_NAND:
+ xvalues.function = GXnand;
+ break;
+ case GDK_SET:
+ xvalues.function = GXset;
+ break;
}
xvalues_mask |= GCFunction;
}
case GXxor:
values->function = GDK_XOR;
break;
+ case GXclear:
+ values->function = GDK_CLEAR;
+ break;
+ case GXand:
+ values->function = GDK_AND;
+ break;
+ case GXandReverse:
+ values->function = GDK_AND_REVERSE;
+ break;
+ case GXandInverted:
+ values->function = GDK_AND_INVERT;
+ break;
+ case GXnoop:
+ values->function = GDK_NOOP;
+ break;
+ case GXor:
+ values->function = GDK_OR;
+ break;
+ case GXequiv:
+ values->function = GDK_EQUIV;
+ break;
+ case GXorReverse:
+ values->function = GDK_OR_REVERSE;
+ break;
+ case GXcopyInverted:
+ values->function =GDK_COPY_INVERT;
+ break;
+ case GXorInverted:
+ values->function = GDK_OR_INVERT;
+ break;
+ case GXnand:
+ values->function = GDK_NAND;
+ break;
+ case GXset:
+ values->function = GDK_SET;
+ break;
}
switch (xvalues.fill_style)
case GDK_XOR:
XSetFunction (private->xdisplay, private->xgc, GXxor);
break;
+ case GDK_CLEAR:
+ XSetFunction (private->xdisplay, private->xgc, GXclear);
+ break;
+ case GDK_AND:
+ XSetFunction (private->xdisplay, private->xgc, GXand);
+ break;
+ case GDK_AND_REVERSE:
+ XSetFunction (private->xdisplay, private->xgc, GXandReverse);
+ break;
+ case GDK_AND_INVERT:
+ XSetFunction (private->xdisplay, private->xgc, GXandInverted);
+ break;
+ case GDK_NOOP:
+ XSetFunction (private->xdisplay, private->xgc, GXnoop);
+ break;
+ case GDK_OR:
+ XSetFunction (private->xdisplay, private->xgc, GXor);
+ break;
+ case GDK_EQUIV:
+ XSetFunction (private->xdisplay, private->xgc, GXequiv);
+ break;
+ case GDK_OR_REVERSE:
+ XSetFunction (private->xdisplay, private->xgc, GXorReverse);
+ break;
+ case GDK_COPY_INVERT:
+ XSetFunction (private->xdisplay, private->xgc, GXcopyInverted);
+ break;
+ case GDK_OR_INVERT:
+ XSetFunction (private->xdisplay, private->xgc, GXorInverted);
+ break;
+ case GDK_NAND:
+ XSetFunction (private->xdisplay, private->xgc, GXnand);
+ break;
+ case GDK_SET:
+ XSetFunction (private->xdisplay, private->xgc, GXset);
+ break;
}
}
* Copy: Overwrites destination pixels with the source pixels.
* Invert: Inverts the destination pixels.
* Xor: Xor's the destination pixels with the source pixels.
+ * Clear: set pixels to 0
+ * And: source AND destination
+ * And Reverse: source AND (NOT destination)
+ * And Invert: (NOT source) AND destination
+ * Noop: destination
+ * Or: source OR destination
+ * Nor: (NOT source) AND (NOT destination)
+ * Equiv: (NOT source) XOR destination
+ * Xor Reverse: source OR (NOT destination)
+ * Copy Inverted: NOT source
+ * Xor Inverted: (NOT source) OR destination
+ * Nand: (NOT source) OR (NOT destination)
+ * Set: set pixels to 1
*/
typedef enum
{
GDK_COPY,
GDK_INVERT,
- GDK_XOR
+ GDK_XOR,
+ GDK_CLEAR,
+ GDK_AND,
+ GDK_AND_REVERSE,
+ GDK_AND_INVERT,
+ GDK_NOOP,
+ GDK_OR,
+ GDK_EQUIV,
+ GDK_OR_REVERSE,
+ GDK_COPY_INVERT,
+ GDK_OR_INVERT,
+ GDK_NAND,
+ GDK_SET
} GdkFunction;
/* GC fill types.